import 'dart:developer' as dev;

import 'package:logger/logger.dart';

/// 日志工具类
/// 所有的日志输出都通过此类进行
/// 方便统一管理
abstract class AppLogger {

  static Logger logger = Logger();

  // 是否为 Release 环境
  static const bool _isRelease = bool.fromEnvironment('dart.vm.product');

  // 在Flutter控制台输出, 支持多行
  static const Function(String value) devLog = dev.log;

  // 在原生程序控制台输出
  static const Function(String value) printLog = print;

  /// 在Flutter控制台输出.支持设置级别
  /// [level] 0: info, 1: warning, 2: error
  static void log(String value, {int level = 0}) {
    if (!_isRelease) {
      // 非Release环境才进行打印
      switch (level) {
        case 0:
          logger.i.call(value);
          break;
        case 1:
          logger.w.call(value);
          break;
        case 2:
          logger.e.call(value);
          break;
        default:
          logger.i.call(value);
          break;
      }
    }
  }
}
